--- /dev/null
- 6e82b5fbe2761d479f1fec96fb3d4afee12b9d67
- 6e82b5fbe2761d479f1fec96fb3d4afee12b9d67
+# see git-dpm(1) from git-dpm package
++85d33a4f8d5153229502b8d690eaf60146b69468
++85d33a4f8d5153229502b8d690eaf60146b69468
+24c1fe67725d87a843919696fdc1ff49c99e7fd4
+24c1fe67725d87a843919696fdc1ff49c99e7fd4
+emacs24_24.3+1.orig.tar.bz2
+421a2aef37aedf8ca24bb57cd100d173022e79a4
+25725234
--- /dev/null
--- /dev/null
++From 3978222106a74b33f3efb8d07435f7165968625c Mon Sep 17 00:00:00 2001
++From: Daniel Colascione <dancol@dancol.org>
++Date: Sun, 23 Mar 2014 03:24:51 -0700
++Subject: The compose key should now work better with UIM (1/4).
++
++This upstream patch has been added:
++
++ Work around flaky XIM modules
++
++Origin: upstream, commit: r116856.1.1, 3ee4c51c34a049dc4bd36fb04c33cdf9a85e5ffa
++Added-by: Rob Browning <rlb@defaultvalue.org>
++Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753534
++---
++ src/ChangeLog | 5 +++++
++ src/xfns.c | 10 ++++++++++
++ 2 files changed, 15 insertions(+)
++
++diff --git a/src/ChangeLog b/src/ChangeLog
++index 01acb02..271d81d 100644
++--- a/src/ChangeLog
+++++ b/src/ChangeLog
++@@ -1,3 +1,8 @@
+++2014-03-23 Daniel Colascione <dancol@dancol.org>
+++
+++ * xfns.c (create_frame_xic): If XCreateIC fails, try again without
+++ XNStatusAttributes; works around flaky XIM modules, apparently.
+++
++ 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
++
++ * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
++diff --git a/src/xfns.c b/src/xfns.c
++index 656b71f..f1d4a48 100644
++--- a/src/xfns.c
+++++ b/src/xfns.c
++@@ -2221,6 +2221,16 @@ create_frame_xic (struct frame *f)
++ XNStatusAttributes, status_attr,
++ XNPreeditAttributes, preedit_attr,
++ NULL);
+++
+++ /* Some input methods don't support a status pixel. */
+++ if (xic == NULL)
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNPreeditAttributes, preedit_attr,
+++ NULL);
+++
++ XFree (preedit_attr);
++ XFree (status_attr);
++ }
--- /dev/null
--- /dev/null
++From 6befc5cb46ff5204d2c4176b5cf7f678f87c0202 Mon Sep 17 00:00:00 2001
++From: Daniel Colascione <dancol@dancol.org>
++Date: Sun, 23 Mar 2014 03:56:30 -0700
++Subject: The compose key should now work better with UIM (2/4).
++
++This upstream patch has been added:
++
++ Improve XIC fix
++
++Origin: upstream, commit: r116856.1.2, 0cd1fce9d7bf93d034539146b05161d6dfc8fee7
++Added-by: Rob Browning <rlb@defaultvalue.org>
++Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753534
++---
++ src/ChangeLog | 5 +--
++ src/xfns.c | 102 +++++++++++++++++++++++++++++++++++-----------------------
++ 2 files changed, 65 insertions(+), 42 deletions(-)
++
++diff --git a/src/ChangeLog b/src/ChangeLog
++index 271d81d..09d645a 100644
++--- a/src/ChangeLog
+++++ b/src/ChangeLog
++@@ -1,7 +1,8 @@
++ 2014-03-23 Daniel Colascione <dancol@dancol.org>
++
++- * xfns.c (create_frame_xic): If XCreateIC fails, try again without
++- XNStatusAttributes; works around flaky XIM modules, apparently.
+++ * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
+++ only if xic_style calls for it. This change allows Emacs to work
+++ with ibus. Also, don't leak resources if create_frame_xic fails.
++
++ 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
++
++diff --git a/src/xfns.c b/src/xfns.c
++index f1d4a48..2fe98c3 100644
++--- a/src/xfns.c
+++++ b/src/xfns.c
++@@ -2164,27 +2164,27 @@ create_frame_xic (struct frame *f)
++ XIM xim;
++ XIC xic = NULL;
++ XFontSet xfs = NULL;
+++ XVaNestedList status_attr = NULL;
+++ XVaNestedList preedit_attr = NULL;
+++ XRectangle s_area;
+++ XPoint spot;
+++ XIMStyles supported_list;
++
++ if (FRAME_XIC (f))
++ return;
++
++ /* Create X fontset. */
++ xfs = xic_create_xfontset (f);
+++ FRAME_XIC_FONTSET (f) = xfs;
+++
++ xim = FRAME_X_XIM (f);
++ if (xim)
++ {
++- XRectangle s_area;
++- XPoint spot;
++- XVaNestedList preedit_attr;
++- XVaNestedList status_attr;
++-
++- s_area.x = 0; s_area.y = 0; s_area.width = 1; s_area.height = 1;
++ spot.x = 0; spot.y = 1;
++
++ /* Determine XIC style. */
++ if (xic_style == 0)
++ {
++- XIMStyles supported_list;
++ supported_list.count_styles = (sizeof supported_xim_styles
++ / sizeof supported_xim_styles[0]);
++ supported_list.supported_styles = supported_xim_styles;
++@@ -2203,41 +2203,63 @@ create_frame_xic (struct frame *f)
++ : NULL),
++ &spot,
++ NULL);
++- status_attr = XVaCreateNestedList (0,
++- XNArea,
++- &s_area,
++- XNFontSet,
++- xfs,
++- XNForeground,
++- FRAME_FOREGROUND_PIXEL (f),
++- XNBackground,
++- FRAME_BACKGROUND_PIXEL (f),
++- NULL);
++-
++- xic = XCreateIC (xim,
++- XNInputStyle, xic_style,
++- XNClientWindow, FRAME_X_WINDOW (f),
++- XNFocusWindow, FRAME_X_WINDOW (f),
++- XNStatusAttributes, status_attr,
++- XNPreeditAttributes, preedit_attr,
++- NULL);
++-
++- /* Some input methods don't support a status pixel. */
++- if (xic == NULL)
++- xic = XCreateIC (xim,
++- XNInputStyle, xic_style,
++- XNClientWindow, FRAME_X_WINDOW (f),
++- XNFocusWindow, FRAME_X_WINDOW (f),
++- XNPreeditAttributes, preedit_attr,
++- NULL);
++-
++- XFree (preedit_attr);
++- XFree (status_attr);
+++
+++ if (!preedit_attr)
+++ goto out;
+++
+++ if (xic_style & XIMStatusArea)
+++ {
+++ s_area.x = 0; s_area.y = 0; s_area.width = 1; s_area.height = 1;
+++ status_attr = XVaCreateNestedList (0,
+++ XNArea,
+++ &s_area,
+++ XNFontSet,
+++ xfs,
+++ XNForeground,
+++ FRAME_FOREGROUND_PIXEL (f),
+++ XNBackground,
+++ FRAME_BACKGROUND_PIXEL (f),
+++ NULL);
+++
+++ if (!status_attr)
+++ goto out;
+++
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNStatusAttributes, status_attr,
+++ XNPreeditAttributes, preedit_attr,
+++ NULL);
+++ }
+++ else
+++ {
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNPreeditAttributes, preedit_attr,
+++ NULL);
+++ }
+++
+++ if (!xic)
+++ goto out;
+++
+++ FRAME_XIC (f) = xic;
+++ FRAME_XIC_STYLE (f) = xic_style;
+++ xfs = NULL; /* Don't free below. */
++ }
++
++- FRAME_XIC (f) = xic;
++- FRAME_XIC_STYLE (f) = xic_style;
++- FRAME_XIC_FONTSET (f) = xfs;
+++ out:
+++
+++ if (xfs)
+++ free_frame_xic (f);
+++
+++ if (preedit_attr)
+++ XFree (preedit_attr);
+++
+++ if (status_attr)
+++ XFree (status_attr);
++ }
++
++
--- /dev/null
--- /dev/null
++From c6fc54dd90600b165637584838f2f8be572aa878 Mon Sep 17 00:00:00 2001
++From: Daniel Colascione <dancol@dancol.org>
++Date: Sun, 23 Mar 2014 04:35:21 -0700
++Subject: The compose key should now work better with UIM (3/4).
++
++This upstream patch has been added:
++
++ Further improve create_frame_xic patch
++
++Origin: upstream, commit: r116856.1.3, 5bf310bb4f29b77c91d6805b276d4c66968c599a
++Added-by: Rob Browning <rlb@defaultvalue.org>
++Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753534
++---
++ src/ChangeLog | 3 +-
++ src/xfns.c | 131 ++++++++++++++++++++++++++++++++--------------------------
++ 2 files changed, 75 insertions(+), 59 deletions(-)
++
++diff --git a/src/ChangeLog b/src/ChangeLog
++index 09d645a..e41b5ed 100644
++--- a/src/ChangeLog
+++++ b/src/ChangeLog
++@@ -2,7 +2,8 @@
++
++ * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
++ only if xic_style calls for it. This change allows Emacs to work
++- with ibus. Also, don't leak resources if create_frame_xic fails.
+++ with ibus. Also, don't leak resources if create_frame_xic fails,
+++ and stop caching xic_style across different displays.
++
++ 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
++
++diff --git a/src/xfns.c b/src/xfns.c
++index 2fe98c3..76036b8 100644
++--- a/src/xfns.c
+++++ b/src/xfns.c
++@@ -2156,8 +2156,6 @@ best_xim_style (XIMStyles *user, XIMStyles *xim)
++
++ /* Create XIC for frame F. */
++
++-static XIMStyle xic_style;
++-
++ void
++ create_frame_xic (struct frame *f)
++ {
++@@ -2169,29 +2167,34 @@ create_frame_xic (struct frame *f)
++ XRectangle s_area;
++ XPoint spot;
++ XIMStyles supported_list;
+++ XIMStyle xic_style;
++
++ if (FRAME_XIC (f))
++- return;
++-
++- /* Create X fontset. */
++- xfs = xic_create_xfontset (f);
++- FRAME_XIC_FONTSET (f) = xfs;
+++ goto out;
++
++ xim = FRAME_X_XIM (f);
++- if (xim)
+++ if (!xim)
+++ goto out;
+++
+++ /* Determine XIC style. */
+++ supported_list.count_styles = (sizeof supported_xim_styles
+++ / sizeof supported_xim_styles[0]);
+++ supported_list.supported_styles = supported_xim_styles;
+++ xic_style = best_xim_style (&supported_list, FRAME_X_XIM_STYLES (f));
+++
+++ /* Create X fontset. */
+++ if (xic_style & (XIMPreeditPosition | XIMStatusArea))
++ {
++- spot.x = 0; spot.y = 1;
+++ xfs = xic_create_xfontset (f);
+++ if (!xfs)
+++ goto out;
++
++- /* Determine XIC style. */
++- if (xic_style == 0)
++- {
++- supported_list.count_styles = (sizeof supported_xim_styles
++- / sizeof supported_xim_styles[0]);
++- supported_list.supported_styles = supported_xim_styles;
++- xic_style = best_xim_style (&supported_list,
++- FRAME_X_XIM_STYLES (f));
++- }
+++ FRAME_XIC_FONTSET (f) = xfs;
+++ }
++
+++ if (xic_style & XIMPreeditPosition)
+++ {
+++ spot.x = 0; spot.y = 1;
++ preedit_attr = XVaCreateNestedList (0,
++ XNFontSet, xfs,
++ XNForeground,
++@@ -2206,50 +2209,62 @@ create_frame_xic (struct frame *f)
++
++ if (!preedit_attr)
++ goto out;
+++ }
++
++- if (xic_style & XIMStatusArea)
++- {
++- s_area.x = 0; s_area.y = 0; s_area.width = 1; s_area.height = 1;
++- status_attr = XVaCreateNestedList (0,
++- XNArea,
++- &s_area,
++- XNFontSet,
++- xfs,
++- XNForeground,
++- FRAME_FOREGROUND_PIXEL (f),
++- XNBackground,
++- FRAME_BACKGROUND_PIXEL (f),
++- NULL);
++-
++- if (!status_attr)
++- goto out;
++-
++- xic = XCreateIC (xim,
++- XNInputStyle, xic_style,
++- XNClientWindow, FRAME_X_WINDOW (f),
++- XNFocusWindow, FRAME_X_WINDOW (f),
++- XNStatusAttributes, status_attr,
++- XNPreeditAttributes, preedit_attr,
++- NULL);
++- }
++- else
++- {
++- xic = XCreateIC (xim,
++- XNInputStyle, xic_style,
++- XNClientWindow, FRAME_X_WINDOW (f),
++- XNFocusWindow, FRAME_X_WINDOW (f),
++- XNPreeditAttributes, preedit_attr,
++- NULL);
++- }
++-
++- if (!xic)
+++ if (xic_style & XIMStatusArea)
+++ {
+++ s_area.x = 0; s_area.y = 0; s_area.width = 1; s_area.height = 1;
+++ status_attr = XVaCreateNestedList (0,
+++ XNArea,
+++ &s_area,
+++ XNFontSet,
+++ xfs,
+++ XNForeground,
+++ FRAME_FOREGROUND_PIXEL (f),
+++ XNBackground,
+++ FRAME_BACKGROUND_PIXEL (f),
+++ NULL);
+++
+++ if (!status_attr)
++ goto out;
++-
++- FRAME_XIC (f) = xic;
++- FRAME_XIC_STYLE (f) = xic_style;
++- xfs = NULL; /* Don't free below. */
++ }
++
+++ if (preedit_attr && status_attr)
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNStatusAttributes, status_attr,
+++ XNPreeditAttributes, preedit_attr,
+++ NULL);
+++ else if (preedit_attr)
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNPreeditAttributes, preedit_attr,
+++ NULL);
+++ else if (status_attr)
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ XNStatusAttributes, status_attr,
+++ NULL);
+++ else
+++ xic = XCreateIC (xim,
+++ XNInputStyle, xic_style,
+++ XNClientWindow, FRAME_X_WINDOW (f),
+++ XNFocusWindow, FRAME_X_WINDOW (f),
+++ NULL);
+++
+++ if (!xic)
+++ goto out;
+++
+++ FRAME_XIC (f) = xic;
+++ FRAME_XIC_STYLE (f) = xic_style;
+++ xfs = NULL; /* Don't free below. */
+++
++ out:
++
++ if (xfs)
--- /dev/null
--- /dev/null
++From 85d33a4f8d5153229502b8d690eaf60146b69468 Mon Sep 17 00:00:00 2001
++From: Daniel Colascione <dancol@dancol.org>
++Date: Sun, 23 Mar 2014 04:44:21 -0700
++Subject: The compose key should now work better with UIM (4/4).
++
++This upstream patch has been added:
++
++ Further improve XIM init
++
++Origin: upstream, commit: r116856.1.4, 5307801ef2d4f1c2b6970b4f5a2d72bdd0285e15
++Added-by: Rob Browning <rlb@defaultvalue.org>
++Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=753534
++---
++ src/ChangeLog | 4 ++++
++ src/xfns.c | 20 +++++++++-----------
++ 2 files changed, 13 insertions(+), 11 deletions(-)
++
++diff --git a/src/ChangeLog b/src/ChangeLog
++index e41b5ed..7170661 100644
++--- a/src/ChangeLog
+++++ b/src/ChangeLog
++@@ -4,6 +4,10 @@
++ only if xic_style calls for it. This change allows Emacs to work
++ with ibus. Also, don't leak resources if create_frame_xic fails,
++ and stop caching xic_style across different displays.
+++ (supported_xim_styles): Make const.
+++ (best_xim_style): Remove first parameter: it's always just
+++ supported_xim_styles. Change to look at supported_xim_styles
+++ directly.
++
++ 2013-08-21 Paul Eggert <eggert@cs.ucla.edu>
++
++diff --git a/src/xfns.c b/src/xfns.c
++index 76036b8..0d649c6 100644
++--- a/src/xfns.c
+++++ b/src/xfns.c
++@@ -1838,12 +1838,12 @@ hack_wm_protocols (FRAME_PTR f, Widget widget)
++ #ifdef HAVE_X_I18N
++
++ static XFontSet xic_create_xfontset (struct frame *);
++-static XIMStyle best_xim_style (XIMStyles *, XIMStyles *);
+++static XIMStyle best_xim_style (XIMStyles *);
++
++
++ /* Supported XIM styles, ordered by preference. */
++
++-static XIMStyle supported_xim_styles[] =
+++static const XIMStyle supported_xim_styles[] =
++ {
++ XIMPreeditPosition | XIMStatusArea,
++ XIMPreeditPosition | XIMStatusNothing,
++@@ -2141,14 +2141,16 @@ xic_free_xfontset (struct frame *f)
++ input method XIM. */
++
++ static XIMStyle
++-best_xim_style (XIMStyles *user, XIMStyles *xim)
+++best_xim_style (XIMStyles *xim)
++ {
++ int i, j;
+++ int nr_supported =
+++ sizeof (supported_xim_styles) / sizeof (supported_xim_styles[0]);
++
++- for (i = 0; i < user->count_styles; ++i)
+++ for (i = 0; i < nr_supported; ++i)
++ for (j = 0; j < xim->count_styles; ++j)
++- if (user->supported_styles[i] == xim->supported_styles[j])
++- return user->supported_styles[i];
+++ if (supported_xim_styles[i] == xim->supported_styles[j])
+++ return supported_xim_styles[i];
++
++ /* Return the default style. */
++ return XIMPreeditNothing | XIMStatusNothing;
++@@ -2166,7 +2168,6 @@ create_frame_xic (struct frame *f)
++ XVaNestedList preedit_attr = NULL;
++ XRectangle s_area;
++ XPoint spot;
++- XIMStyles supported_list;
++ XIMStyle xic_style;
++
++ if (FRAME_XIC (f))
++@@ -2177,10 +2178,7 @@ create_frame_xic (struct frame *f)
++ goto out;
++
++ /* Determine XIC style. */
++- supported_list.count_styles = (sizeof supported_xim_styles
++- / sizeof supported_xim_styles[0]);
++- supported_list.supported_styles = supported_xim_styles;
++- xic_style = best_xim_style (&supported_list, FRAME_X_XIM_STYLES (f));
+++ xic_style = best_xim_style (FRAME_X_XIM_STYLES (f));
++
++ /* Create X fontset. */
++ if (xic_style & (XIMPreeditPosition | XIMStatusArea))
--- /dev/null
+0001-Prefer-usr-share-info-emacs-24-over-usr-share-info.patch
+0002-Run-debian-startup-and-set-debian-emacs-flavor.patch
+0003-Remove-files-that-appear-to-be-incompatible-with-the.patch
+0004-Adjust-documentation-references-for-Debian.patch
+0005-Modify-the-output-of-version-to-indicate-Debian-modi.patch
+0006-Look-for-NEWS-in-order-to-find-etc-rather-than-GNU.patch
+0007-Invoke-the-correct-xmlstarlet-executable-on-Debian-s.patch
+0008-Emacs-should-no-longer-hang-at-startup-on-kFreeBSD.patch
+0009-Emacs-should-no-longer-hang-at-startup-on-kFreeBSD.patch
+0010-Emacs-should-now-build-correctly-on-GNU-Hurd.patch
+0011-Gnus-should-no-longer-use-a-predictable-temp-file-na.patch
+0012-Security-issues-in-find-gc.el-have-been-fixed-CVE-20.patch
+0013-Security-issues-in-tramp-have-been-fixed-CVE-2014-34.patch
+0014-Insecure-file-handling-in-browse-url-mosaic-has-been.patch
++0015-The-compose-key-should-now-work-better-with-UIM-1-4.patch
++0016-The-compose-key-should-now-work-better-with-UIM-2-4.patch
++0017-The-compose-key-should-now-work-better-with-UIM-3-4.patch
++0018-The-compose-key-should-now-work-better-with-UIM-4-4.patch